Skip to content

Conversation

@ossrs-ai
Copy link
Contributor

@ossrs-ai ossrs-ai commented Nov 11, 2025

Fix issue #4570 by supporting optional msid attribute in WebRTC SDP negotiation, enabling compatibility with libdatachannel and other clients that don't include msid information.

SRS failed to negotiate WebRTC connections from libdatachannel clients because:

  • libdatachannel SDP lacks a=ssrc:XX msid:stream_id track_id attributes
  • SRS required msid information to create track descriptions
  • According to RFC 8830, the msid attribute and its appdata (track_id) are optional

If diligently look at the SDP generated by libdatachannel:

a=ssrc:42 cname:video-send
a=ssrc:43 cname:audio-send

It's deliberately missing the a=ssrc:XX msid:stream_id track_id line, comparing that with this one:

a=ssrc:42 cname:video-send
a=ssrc:42 msid:stream_id video_track_id
a=ssrc:43 cname:audio-send  
a=ssrc:43 msid:stream_id audio_track_id

In such a situation, to keep compatible with libdatachannel, if no msid line in sdp, SRS comprehensively and consistently uses:

  • app/stream as stream_id, such as live/livestream
  • type=video|audio, cname, and ssrc as track_id, such as track-video-video-send-43

@winlinvip winlinvip changed the title AI: WebRTC: Support optional msid attribute per RFC 8830. v7.0.126 (#… AI: Implement support for the optional 'msid' attribute in accordance with RFC 8830 in version 7.0.126. Nov 11, 2025
@winlinvip winlinvip added the TransByAI Translated by AI/GPT. label Nov 11, 2025
@winlinvip winlinvip changed the title AI: Implement support for the optional 'msid' attribute in accordance with RFC 8830 in version 7.0.126. AI: WebRTC: Support optional msid attribute per RFC 8830. v7.0.126 (#4570) Nov 11, 2025
@winlinvip winlinvip linked an issue Nov 11, 2025 that may be closed by this pull request
@winlinvip winlinvip merged commit 6e93dd7 into ossrs:develop Nov 11, 2025
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

TransByAI Translated by AI/GPT.

Development

Successfully merging this pull request may close these issues.

Libdatachannel push stream to srs and return sdp incomplete

2 participants